import store from "@/store";

function checkPermission(el, binding) {
    const { value } = binding;
    const roles = store.getters && store.getters.roles;

    if (value && value instanceof Array) {
        if (value.length > 0) {
            const permissionRoles = value;

            const hasPermission = roles.some(role => {
                return permissionRoles.includes(role);
            });

            if (!hasPermission) {
                el.parentNode && el.parentNode.removeChild(el);
            }
        }
    } else {
        throw new Error(`need roles! Like v-permission="['admin','editor']"`);
    }
}

export default {
    inserted(el, binding) {
        checkPermission(el, binding);
    },
    update(el, binding) {
        checkPermission(el, binding);
    }
};
